package 力扣题库;

import java.util.HashSet;
import java.util.Set;

public class p136只出现一次的数字 {
    public int singleNumber(int[] nums) {
        //利用 异或运算，相同为0，不同为1，
        //任何数和自己进行异或结果为0，任何数和0进行异或结果为本身
        int res=0;
        for (int a:nums) {
            res ^=a;
        }
        return res;
    }

    public int singleNumber1(int[] nums) {
        Set<Integer> set=new HashSet<>();
        for (int i = 0; i <nums.length; i++) {
            if (set.contains(nums[i])) {
                set.remove(nums[i]);
            }else {
                set.add(nums[i]);
            }
        }
        for (Integer key:set) {
            return key;//本题中重复元素只有一个，因此set最后也只有一个元素，一次遍历return就是结果
        }
        return -1;
    }

}
